响应式设计,就是让同一个页面在不同的分辨率下都要呈现出最佳效果,提升用户体验。
很容易想到,设计思路就是针对不同的分辨率,为页面设置不同的样式,下面我们就来看看如何实现。不过在此之前,还需要先了解下面两个东西。
viewport
viewport 就是屏幕上用来显示页面内容的那部分区域。 默认情况下,移动设备上的viewport是大于屏幕宽度的,这是为了确保能够展示那些针对传统PC端开发的网页。大部分移动设备的默认viewport都在980px左右。 这样就会造成浏览器横向的滚动条出现。有些设备为了避免滚动条出现,会自动缩小网页内容,使内容适应屏幕宽度,这样就会造成屏幕上的内容非常小,难以看清。 以上两种处理方式都不是我们希望看到的,因此,需要首先将这个viewport设置为设备的宽度,设置缩放比例为1:1,代码如下:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
注意:这里关于viewport的解读比较简单,详细的可以参考这篇文章。
媒体查询
媒体查询是写在CSS中的一段代码,作为其他CSS代码的容器。容器中的css代码只有在媒体查询条件的情况下才会生效。例如屏幕宽度<980px,网页正在打印时等。 有2种方式可以添加媒体查询:@media
规则和<link>标签的media属性。
响应式设计步骤
通过上面介绍,我们了解到响应式设计的第一步需要在页面中添加如下代码:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
然后就是设置各个分辨率下的样式了。但屏幕的分辨率种类实在太多了,我们不可能一一穷举出来,也没有必要这么做。 实际上可以将分辨率划分成几个范围,然后分别设置这几个范围内的样式。不同范围的分界点叫做响应式布局的 断点。
关于断点的选择,不同的前端框架都有各自的选择,但总体上都是按照手机、平板、PC几个范围来的。如bootstrap3的选择:
- Extra small devices Phones (<768px)
- Small devices Tablets (≥768px)
- Medium devices Desktops (≥992px)
- Large devices Desktops (≥1200px)
断点(breakpoint)的具体写法类似如下形式:
@media screen and (min-width:640px) { /CSS 规则/ }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。